home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / townsmsx / scc2tif.bas < prev    next >
BASIC Source File  |  1993-07-08  |  5KB  |  152 lines

  1. 1000 ' MSX SCREEN12  ->  無圧縮TIFF  変換
  2. 1010 ' BY    ちにゃと
  3. 1015 CLEAR ,,,300000
  4. 1016 STOP OFF
  5. 1017 DEFLNG I,J
  6. 1020 DEFINT M,T,S,R,G,B,Y,K
  7. 1030 DIM MSX(32768)
  8. 1050 DIM SCC(27135)
  9. 1060 DIM TIF(54527)
  10. 2000 *メイン
  11. 2002 ON ERROR GOTO 0
  12. 2010 GOSUB *FILE_SLCT
  13. 2020 GOSUB *FILE_LOAD
  14. 2030 GOSUB *CONVERT
  15. 2040 GOSUB *SAVE
  16. 2045 'GOSUB *LOOK
  17. 2050 PRINT "続けますか?  (Y/N)"
  18. 2060 A$=INKEY$
  19. 2070 IF A$="y" OR A$="Y" THEN *メイン
  20. 2080 IF A$="N" OR A$="n" THEN END
  21. 2090 GOTO 2060
  22. 3000 *FILE_SLCT
  23. 3010 INPUT "ドライブは? (A,B,D)";A$
  24. 3020 IF A$<>"A" AND A$<>"B" AND A$<>"D" AND A$<>"a" AND A$<>"b" AND A$<>"d" THEN 3010
  25. 3030 IF A$="a" OR A$="A" THEN DRV$="A:"
  26. 3040 IF A$="B" OR A$="b" THEN DRV$="B:"
  27. 3050 IF A$="D" OR A$="d" THEN DRV$="D:"
  28. 3055 ON ERROR GOTO 10000 
  29. 3060 PRINT "<*.SCC>":FILES DRV$+"*.SCC"
  30. 3070 PRINT "<*.SRS>":FILES DRV$+"*.SRS"
  31. 3075 ON ERROR GOTO 0
  32. 3080 INPUT "ファイル名を入力してください";FIL$
  33. 3090 IF FIL$="" THEN RETURN *メイン
  34. 3100 RETURN
  35. 4000 *FILE_LOAD
  36. 4010 ON ERROR GOTO *エラートラップ2
  37. 4020 LOAD@ DRV$+FIL$,MSX
  38. 4030 ON ERROR GOTO 0
  39. 4040 RETURN
  40. 5000 *CONVERT
  41. 5010 FOR J=0 TO 256*212/2-2
  42. 5020 POKE VARPTR(SCC(J)),PEEK(VARPTR(MSX(0))+(J+3)*2+1)
  43. 5025 POKE VARPTR(SCC(J))+1,PEEK(VARPTR(MSX(0))+(J+4)*2)
  44. 5030 NEXT J
  45. 5035 PRINT "pass1 ok"
  46. 5036 FOR I=0 TO 3:Y(I)=0:R(I)=0:G(I)=0:B(I)=0:NEXT I:K=0:KJ=0:J=0
  47. 5038 AD&=VARPTR(SCC(0))
  48. 5040 FOR J=0 TO 256*212/2-2 STEP 2
  49. 5060    Y(0)=PEEK(AD&+J*2) \ 8
  50. 5070    Y(1)=PEEK(AD&+J*2+1) \ 8
  51. 5080    Y(2)=PEEK(AD&+(J+1)*2) \ 8
  52. 5090    Y(3)=PEEK(AD&+(J+1)*2+1) \ 8
  53. 5100    K=(PEEK(AD&+J*2) AND 7)+(PEEK(AD&+J*2+1) AND 3)*8
  54. 5110    KJ=(PEEK(AD&+(J+1)*2) AND 7)+(PEEK(AD&+(J+1)*2+1) AND 3)*8
  55. 5112    IF (PEEK(AD&+J*2+1) AND 4)<>0 THEN K=-32+K
  56. 5114    IF (PEEK(AD&+(J+1)*2+1) AND 4)<>0 THEN KJ=-32+KJ
  57. 5120    FOR I=0 TO 3
  58. 5130       R(I)=Y(I)+KJ
  59. 5140       G(I)=Y(I)+K
  60. 5150       B(I)=INT(Y(I)*5/4-KJ/2-K/4)
  61. 5160       IF R(I)<0 THEN R(I)=0
  62. 5170       IF G(I)<0 THEN G(I)=0
  63. 5180       IF B(I)<0 THEN B(I)=0
  64. 5190       IF R(I)>31 THEN R(I)=31
  65. 5200       IF G(I)>31 THEN G(I)=31
  66. 5210       IF B(I)>31 THEN B(I)=31
  67. 5220       TIF(256+J*2+I)=G(I)*1024+R(I)*32+B(I)
  68. 5230    NEXT I
  69. 5240 NEXT J
  70. 5245 PRINT "pass2 ok"
  71. 5250 RESTORE *DATA
  72. 5260 FOR I=0 TO 95
  73. 5270    READ A$,B$
  74. 5280    POKE VARPTR(TIF(0))+I*2,VAL("&H"+A$)
  75. 5290    POKE VARPTR(TIF(0))+I*2+1,VAL("&H"+B$)
  76. 5300 NEXT I
  77. 5310 FOR I=248 TO 255
  78. 5320    READ A$,B$
  79. 5330    POKE VARPTR(TIF(0))+I*2,VAL("&H"+A$)
  80. 5340    POKE VARPTR(TIF(0))+I*2+1,VAL("&H"+B$)
  81. 5350 NEXT I
  82. 5360 RETURN
  83. 6000 *SAVE
  84. 6010 PRINT "コンバート終了しました。"
  85. 6020 PRINT:INPUT "セーブするドライブを指定して下さい。 (A/B/D)";A$
  86. 6030 IF A$="" THEN RETURN
  87. 6040 IF A$="A" OR A$="a" THEN DRV$="A:"
  88. 6050 IF A$="B" OR A$="b" THEN DRV$="B:"
  89. 6070 IF A$="D" OR A$="d" THEN DRV$="D:"
  90. 6075 'FIL$="gallery6.scc":DRV$="d:"
  91. 6080 FIL=INSTR(FIL$,".")
  92. 6090 FIL$=LEFT$(FIL$,FIL-1)
  93. 6095 'PRINT "#####";DRV$+FIL$+".tif";"####":END
  94. 6100 ON ERROR GOTO *ERROR3
  95. 6110 FILES DRV$+FIL$+".TIF"
  96. 6112 INPUT "同名のTIFファイルがあります。上書きしますか? (Y/N)";A$
  97. 6114 IF A$="Y" OR A$="y" THEN GOTO *DEL
  98. 6116 IF A$="n" OR A$="N" THEN RETURN *メイン
  99. 6118 GOTO 6112
  100. 6120 *SAVEMAIN
  101. 6122 ON ERROR GOTO *ERROR4
  102. 6130 SAVE@ DRV$+FIL$+".$$$",TIF
  103. 6140 ON ERROR GOTO 0
  104. 6150 NAME DRV$+FIL$+".$$$" AS FIL$+".TIF"
  105. 6160 RETURN
  106. 6170 *ERROR3
  107. 6175 RESUME *SAVEMAIN
  108. 6212 *DEL 
  109. 6213 ON ERROR GOTO 0:'*ERROR4
  110. 6214 KILL DRV$+FIL$+".TIF"
  111. 6215 ON ERROR GOTO 0
  112. 6216 GOTO *SAVEMAIN
  113. 6220 *ERROR4
  114. 6230 PRINT "書き込めません。"
  115. 6240 RESUME *メイン
  116. 7000 *LOOK
  117. 7010 SCREEN@ 1,0
  118. 7020 LOAD@ DRV$+FIL$+".tif",(32,14)
  119. 7025 'LOAD@ "q:\fj\photo\cat2.tif",(32,14)
  120. 7030 IF INKEY$="" THEN 7030
  121. 7040 SCREEN@ 0:CLS 0
  122. 7050 RETURN
  123. 10000 *エラートラップ
  124. 10010 PRINT "ファイルがありません"
  125. 10020 RESUME NEXT
  126. 10100 *エラートラップ2
  127. 10110 PRINT "ファイル名が間違っています。"
  128. 10120 RESUME *メイン
  129. 20000 A%=16:PRINT A%:PRINT "&h";" 0";HEX$(PEEK(VARPTR(A%)));" 0";HEX$(PEEK(VARPTR(A%)+1))
  130. 30000 *DATA
  131. 30002 ' TIFF HEADER
  132. 30005 '    +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
  133. 30010 DATA 49,49,2A,00,08,00,00,00,0F,00
  134. 30020 DATA FE,00,04,00,01,00,00,00,00,00,00,00
  135. 30040 DATA 00,01,03,00,01,00,00,00,00,01,00,00
  136. 30050 DATA 01,01,03,00,01,00,00,00,D4,00,00,00
  137. 30060 DATA 02,01,03,00,01,00,00,00,10,00,00,00
  138. 30070 DATA 03,01,03,00,01,00,00,00,01,00,00,00
  139. 30080 DATA 06,01,03,00,01,00,00,00,01,00,00,00
  140. 30090 DATA 0A,01,03,00,01,00,00,00,01,00,00,00
  141. 30100 DATA 11,01,04,00,01,00,00,00,00,02,00,00
  142. 30110 DATA 15,01,03,00,01,00,00,00,01,00,00,00
  143. 30120 DATA 16,01,04,00,01,00,00,00,D4,00,00,00
  144. 30130 DATA 17,01,04,00,01,00,00,00,00,AA,01,00
  145. 30140 DATA 19,01,03,00,01,00,00,00,FF,7F,00,00
  146. 30150 DATA 1A,01,05,00,01,00,00,00,F0,01,00,00
  147. 30160 DATA 1B,01,05,00,01,00,00,00,F8,01,00,00
  148. 30170 DATA 1C,01,03,00,01,00,00,00,01,00,00,00
  149. 30180 DATA 00,00
  150. 30190 DATA 4B,00,00,00,02,00,00,00
  151. 30200 DATA 4B,00,00,00,02,00,00,00
  152.